#pragma once

#include <stdbool.h>

typedef int E;

typedef struct node 
{
	E data;
	struct node* next;
} Node;

typedef struct
{
	Node* top;
} Stack;

// API
void stack_init(Stack* s);
void stack_destroy(Stack* s);

void stack_push(Stack* s, E e);
E stack_pop(Stack* s);
E stack_peek(const Stack* s);
bool stack_empty(const Stack* s);
void stack_display(const Stack* s);